import java.util.ArrayList;
import java.util.List;

//我们把只包含因子2、3 和5 的数称作丑数（Ugly Number）。例如6、8 都是丑数，但14 不是，因为它包含因子7。习惯上我们把1 当做是第一个丑数。求按从小到大的顺序输出1500 个丑数。10个一行。
public class homework30 {
    public static void main(String[] args) {
        List<Integer> uglyNumbers = new ArrayList<>();
        uglyNumbers.add(1);
        int i2 = 0, i3 = 0, i5 = 0;
        while (uglyNumbers.size() < 1500) {
            int nextUglyNumber = Math.min(uglyNumbers.get(i2) * 2, Math.min(uglyNumbers.get(i3) * 3, uglyNumbers.get(i5) * 5));
            uglyNumbers.add(nextUglyNumber);
            if (nextUglyNumber == uglyNumbers.get(i2) * 2) {
                i2++;
            }
            if (nextUglyNumber == uglyNumbers.get(i3) * 3) {
                i3++;
            }
            if (nextUglyNumber == uglyNumbers.get(i5) * 5) {
                i5++;
            }
        }

        for (int j = 0; j < uglyNumbers.size(); j += 10) {
            for (int i = j; i < j+10; i++) {
                System.out.print(uglyNumbers.get(i) + " ");
            }
            System.out.println();
        }
    }
}
